package 力扣;
//给你两个二进制字符串，返回它们的和（用二进制表示）。
//输入为 非空 字符串且只包含数字 1 和 0。
public class 二进制求和 {
    public static void main(String[] args) {
        String a="1010";
        String b="1011";
        String s = addBinary(a, b);
        System.out.println(s);
    }
    public static String addBinary(String a, String b) {
         int count=0;
        StringBuilder builder = new StringBuilder();
        for (int i =a.length()-1,j=b.length()-1;i>=0||j>=0; i--,j--) {
            int sum = count;
            sum += i >= 0 ? a.charAt(i) - '0' : 0;
            sum += j >= 0 ? b.charAt(j) - '0' : 0;
            builder.append(sum % 2);
            count=sum / 2;
        }
        if (count==1)
            builder.append('1');
        return builder.reverse().toString();
    }
}
